// 前端监控系统的主类
class WebMonitor {
  // 构造函数，接收配置参数
  constructor(options = {}) {
    // 初始化配置项，合并默认值和用户传入的配置
    this.options = {
      appId: '',          // 应用唯一标识
      userId: '',         // 用户唯一标识
      reportUrl: 'https://your-api.com/report', // 数据上报地址
      ...options         // 展开用户配置，覆盖默认值
    };
    
    // 执行初始化
    this.init();
  }

  // 初始化方法，启动所有监控模块
  init() {
    // 初始化性能监控模块
    this.initPerformanceMonitor();
    // 初始化错误监控模块
    this.initErrorMonitor();
  }

  // 初始化性能监控，使用动态导入以实现代码分割
  initPerformanceMonitor() {
    import('./performance').then(module => {
      const PerformanceMonitor = module.default;
      const Performance = new PerformanceMonitor(this.options);
      Object.assign(this, Performance);
    });
  }

  // 初始化错误监控，使用动态导入以实现代码分割
  initErrorMonitor() {
    import('./error').then(module => {
      const ErrorMonitor = module.default;
      const Error = new ErrorMonitor(this.options);
      Object.assign(this, Error);
    });
  }
}

// 导出监控类
export default WebMonitor; 